Ext.ns('Tm.file');
Tm.file.FileSearchPanel = Ext.extend(Ext.Panel, {
			id:'fileSearchPanel',
			frame : true,
			autoWidth : true,
			title : '文件查询',
			layout : 'fit',
			initComponent : function() {
				var form = new Tm.common.FormPanel({
							layout : 'table',
							layoutConfig : {
								columns : 3
							},
							defaults : {
								xtype : 'textfield',
								margins : '0 5 0 0',
								width:250
							},
							items : [{
										plugins : [Ext.ux.FieldLabeler],
										name : 'name',
										fieldLabel : '文件名称'
									}, {
										plugins : [Ext.ux.FieldLabeler],
										name : 'type',
										fieldLabel : '文件类型',
										//width:150,
										xtype : 'combo',
										mode : 'local',
										typeAhead : true,
										forceSelection : true,
										triggerAction : 'all',
										emptyText : '请选择...',
										selectOnFocus : true,
										store : Tm.data.fileType
									},	{	
										plugins : [Ext.ux.FieldLabeler],
										fieldLabel : '上级目录',
										xtype : 'treecombobox', 
										name : 'parent',
										hiddenName:'parent',
										dataUrl:'file/loadAllFilelyFile.do',
 										filterNodeId:this.dataId,
 										width:300
									} 
									, {
										plugins : [Ext.ux.FieldLabeler],
										xtype : 'googlesearchfield',
										fieldLabel : '相关案件',
										name : 'taskId',
										hiddenName : 'taskId',
										queryURL : 'task/goolgeTask.do'

									}]
						});

				var sm = new Ext.grid.CheckboxSelectionModel({singleSelect :true});
				var cm = new Ext.grid.ColumnModel([sm , {
							header : 'id',
							width : 20,
							dataIndex : 'id',
							hidden : true
						}, {
							header : '文件名称',
							width : 80,
							dataIndex : 'name',
							sortable : true
						}, {
							header : '文件路径',
							width : 180,
							dataIndex : 'path',
							sortable : true
						}, {
							header : '文件类型',
							width : 40,
							dataIndex : 'type',
							align : 'center',
							xtype : 'combocolumn',
							sortable : true,
						    editor: new Ext.form.ComboBox({
									name : 'type',
 									editable : false,
									typeAhead : true,
									forceSelection : true,
									hiddenName : 'enable',
									mode : 'local',
									triggerAction : 'all',
									emptyText : '请选择...',
									selectOnFocus : true,
									store : Tm.data.fileType,
									allowBlank : false
								})
							
						}, {
							header : '包含文件',
							width : 40,
							dataIndex : 'hasChildren',
							align : 'center',
							xtype : 'combocolumn',
							sortable : true,
						    editor: new Ext.form.ComboBox({
									name : 'hasChildren',
 									editable : false,
									typeAhead : true,
									forceSelection : true,
									hiddenName : 'enable',
									mode : 'local',
									triggerAction : 'all',
									emptyText : '请选择...',
									selectOnFocus : true,
									store : Tm.data.hasChildren,
									allowBlank : false
								})
							
						}, {
							header : '描述',
							width : 250,
							dataIndex : 'description',
							sortable : true
						}]
						);
				cm.defaultSortable = true;
				var fields = [{
							name : 'id',
							type : 'int',
							mapping : 'id'
						}, {
							name : 'path',
							type : 'string',
							mapping : 'path'
						}, {
							name : 'name',
							type : 'string',
							mapping : 'name'
						}, {
							name : 'type',
							type : 'string',
							mapping : 'type'

						}, {
							name : 'hasChildren',
							type : 'string',
							mapping : 'hasChildren'

						}, {
							name : 'description',
							type : 'string',
							mapping : 'description'
						}];
				var ds = new Ext.data.Store({
							id : 'fileSearchPanelGridPanelStore',
							proxy : new Ext.data.HttpProxy({
										url : 'file/queryFile.do'
									}),
							reader : new Ext.data.JsonReader({
										totalProperty : 'totalProperty',
										root : 'root',
										id : 'id',
										fields : fields
									}),
							baseParams : {
								start : 0,
								limit : 20
							},
							sortInfo : {
								field : 'id',
								direction : 'ASC'
							},
							autoLoad : true,
							listeners: {
						        beforeload: function() {
						        	Ext.apply(this.baseParams, form.getForm().getFieldValues(false));
						        	Ext.apply(this.baseParams,{'parent':form.getForm().findField('parent').value});

							
							
						        }
						    }
						}


				);


				var grid = new Ext.grid.GridPanel({
							ref:'grid',
							store : ds,
							sm : sm,
							cm : cm,
							border : false,
							stripeRows : true,
							autoHeight : true,
							viewConfig : {
								forceFit : true
							},
							bbar : new Ext.PagingToolbar({
										plugins : new Ext.ux.ProgressBarPager(),
										pageSize : 20,
										store : ds,
										displayInfo : true,
										emptyMsg : '没有记录'
									}),

						listeners: {
						        celldblclick: function(grid ,rowIndex,columnIndex,event) {
						        	 var store=grid.getStore();
   									 var data=store.getAt(rowIndex).data;
   									if (data.type == 'FILE') {
   										var fileyFileAddPanel = new Tm.file.FileyFileAddPanel({dataId : data.id
										});
										var fileyFileAddWindow = new Tm.common.CommonWindow({
											id : 'fileyFileAddWindow',
											title : '更新文件夹',
											items : fileyFileAddPanel
										});
										fileyFileAddWindow.on('close', function(panel) {
											store.load();
											
										});
										fileyFileAddWindow.show();
   										
   									} else {
   										var fileAddPanel = new Tm.file.FileAddPanel({
   											dataId : data.id
   										});
   										var fileAddWindow = new Tm.common.CommonWindow({
   											id : 'fileAddWindow',
   											title : '更新文件',
   											// plain : true,
   											// bodyStyle : 'padding:5px;',

   											items : fileAddPanel
   										});
   										fileAddWindow.on('close', function(panel) {
											store.load();
   											
   										});
   										fileAddWindow.show();
   									}

										
						        }
						    }
						});
				var toolBar = new Ext.Toolbar({
							hideBorders : true,
							buttons : [{
										text : '查询',
										iconCls : 'act_queryIcon',
										handler : function() {
											ds.load();
										}
									}, {
										xtype : 'tbseparator'
									}, {
										text : '重置',
										iconCls : 'act_resetIcon',
										handler : function() {
											form.getForm().reset();
											form.getForm().findField('parent').setValue(null);
										}
									}
									, {
										xtype : 'tbseparator'
									}, {
										iconCls : 'act_addIcon',
										text:'新增',
										tooltip : '新增文件夹或者文件',
										menu: [{
											iconCls : 'icon-folder',
											tooltip : '新增文件夹',
											text: '新增文件夹',
											handler : function() {
												 var store=grid.getStore();
												var fileyFileAddPanel = new Tm.file.FileyFileAddPanel({ });
												var fileyFileAddWindow = new Tm.common.CommonWindow({
													id : 'fileyFileAddWindow',
													title : '新增文件夹',
													items : fileyFileAddPanel
												});
												fileyFileAddWindow.on('close', function(panel) { store.load();});
												fileyFileAddWindow.show();
											}
										},{
											iconCls : 'icon-file',
											tooltip : '新增文件',
											text: '新增文件',
											handler : function() {
												 var store=grid.getStore();
												
												var fileAddPanel = new Tm.file.FileAddPanel({ });
												var fileAddWindow = new Tm.common.CommonWindow({
													id : 'fileAddWindow',
													title : '新增文件',
													items : fileAddPanel
												});
												fileAddWindow.on('close', function(panel) { store.load();});
												fileAddWindow.show();
											}
										}]
									},{
										xtype : 'tbseparator'
									},
									{
										iconCls : 'act_deleteIcon',
										tooltip : '删除',
										text: '删除',
										handler : function() {				
//											console.dir(grid.getSelectionModel());
											var records = grid.getSelectionModel().selections.items;
											
											if(records.length>0){
												var record=records[0];
 												if(record.data.id){
													console.dir(record.data);
													if( record.data.type=='FILE'&&record.data.hasChildren=='true'){

														Ext.MessageBox.confirm('注意', '所选文件夹包含其他文件，您确定要对其进行删除操作？',
																function(btn) {
																	if (btn == 'yes') {
																		Ext.Ajax.request({
																			url : 'file/deleteFiles.do',
																			params : {
																				ids : [record.data.id]
																			},
																			success : function(response, action) {
																				 grid.store.load();
																			} 

																		});
																	}else{
																		return;
																	}
																});
													}else{
														
														Ext.Ajax.request({
															url : 'file/deleteFiles.do',
															params : {
																ids : [record.data.id]
															},
															success : function(response, action) {
																 grid.store.load();
 															} 

														});
													}

												}
												

											}
											
										},
										scope : this
									}
									]
						});
				Ext.apply(this, {
							tbar : toolBar,
							items : [form, grid]
						});
				Tm.file.FileSearchPanel.superclass.initComponent.call(this);
			},
			listeners : {

				deactivate  : function( panel) {
					var fileNavigatePanel = Ext.getCmp("fileNavigatePanel");
					var loader = new Ext.tree.TreeLoader({dataUrl:'file/loadAllFilelyFile.do',
						listeners : {
							load : function(  tree,   node,   callback ) {
								
								fileNavigatePanel.tree.expandAll();
							}
						}
					
					});
					loader.load(fileNavigatePanel.tree.root);
					fileNavigatePanel.filePanel.dataView.store.load();
				}
			}
		});
